import React, { Component, createRef } from 'react';

// 引入子组件
// 第一种方式:  通过动态属性props 直接传递要传递的数据就ok
// 第二种方式: 通过动态属性props,传递一个函数,该函数是在父组件中定义的函数,然后该函数的返回值为当前父组件中的数据, 子组件接收该函数, 并且在子组件中调用该函数, 函数的返回值就是父组件中的值(注意传递的函数的this中的指向)

// 第三种方式: 通过在子组件中定义一个函数,该函数的接收一个参数,参数就是父组件传递的数据,在父组件中调用子组件中的方法, 并且传递实参数据,通过ref 属性


import Son from './Son';

class Father extends Component {
    state = {
        username: "冷面寒枪-俏罗成"
    }

    getfatherStateFn = () => {
        return this.state.username
    }
    ref1 = createRef();
    render() {
        return (
            <div>
                {/* <Son username={this.state.username}></Son> */}
                {/* <Son fun={this.getfatherStateFn.bind(this)}></Son> */}
                {/* <Son fun={this.getfatherStateFn}></Son> */}
                <Son ref={this.ref1}></Son>
            </div>
        );
    };
    componentDidMount() {
        //调用子组件中的方法 
        this.ref1.current.getstatefromfather(this.state.username)
    }
}

export default Father;
